In 1948, Claude Shannon initially proposed his famous “noisy channel encoding theory” which firstly gives the maximum transmission rate of the noisy channel information, i.e., channel capacity. Meanwhile, Shannon also derived the maximum transmission capability of the noisy channel, i.e., the minimum Signal-to-Noise Ratio required by errorless information transmission, which is also called as Shannon's limit. The Shannon's limit is the most important feature for evaluating the capability of channel error correction. Closer the error correction performance curve to the Shannon's limit, the more excellent is the error correction performance. Otherwise, farther to the Shannon's limit, the worse is the performance. Although the encoding theory of Shannon gives the channel capacity which can be obtained by the optimal encoding scheme, detailed encoding scheme is not provided, and the complexity degree is not described either.
The Low Density Parity Check (LDPC) is a kind of excellent channel error correction encoding scheme which may approach the Shannon's limit. The LDPC code is a special linear parity block code, whose parity matrix is “sparse”, i.e. there is only very few non-zero elements (for the binary code, non-zero element is 1), and the remaining elements are all zero. In 1960, Robert Gallager firstly proposed the concept of LDPC code in his Ph.D. dissertation and also suggested two iterated decoding algorithms, thus the LDPC code is also called as Gallager code. Gallager indicated theoretically that the LDPC code may approach the channel capacity with lower complexity by using iterated decoding algorithms (or message delivering algorithms). This is a great invention. However, in the following 30 years, researchers did not pay enough attention to the invention.
From the current viewpoint, one reasons why the LDPC code was ignored might consist in that the software and hardware levels of the computers were very inferior at that time, and thus the researches could not know the excellent performance of the LDPC code from results of computer simulations; as another reason, the LDPC code needs a larger storage space which could not be born at that time. Additionally, at that time, other codes such as Reed-Solomon code and Hamming code were available, which might be considered as temporarily usable channel encoding schemes, and thus the researchers did not intently forward their researches onto the LDPC code.
Even today, if it is intended to apply the LDPC code to actual communication systems, the LDPC code still needs to be carefully studied and designed. Because the actual communication systems put some special requirements on the LDPC code, such as hardware schemes of codec with lower complexity, excellent error correction performance, and the like, thus, besides the deep studies on the encoding/decoding method, it is also required to specially limit the construction of the parity matrix of the LDPC code. Generally, there are two methods of constructing the parity matrix of the LDPC code: one is to firstly set some limitations on the attribute of parity matrix such as minimum girth or junction degree distribution etc., and then randomly or pseudo-randomly generate the parity matrix by using the computer searching methods, the searching method takes a long period of time and it can not ensure the convergence of search procedure. Since the generated check matrices have high randomicity level and low regularity level, the check matrices have to be stored during the process of encoding and decoding, thus it increases the memory demand. The other method is to construct the parity matrix of the LDPC code by using the mathematical formulae to make it have regular structure. The method solves the problem of storing the check matrices. However, each row and column of a single check matrix lacks of rule, which is hard for parallel processing.